<?php 

/**
*Form Builder & Admin Generator

*@author marcio <opi14@op.pl>, <polishvodka7@gmail.com>
*@copyright Copyright (c) 2011, marcio
*@version 1.6.5
*/


abstract class Volta_View
{

	/**
	*Skladowa klasy ktora przechowywuje tablice z formularzem
	*@access protected
	*@var array $form
	*/
	protected $form = array();
	
	/**
	*Skladowa klasy ktora przechowywuje nie wyswietlane tagi formularza
	*@access protected
	*@var array $form_tag
	*/
	protected $form_tag = array();
	
	/**
	*Skladowa klasy ktora przechowywuje bledy wychwycone za pomoca walidacji formularza
	*@access protected
	*@var array $errors
	*/
	protected $errors = array();
	
	/**
	*Skladowa klasy ktora przechowywuje tresc wiadomosci zwrocona przez akcje
	*@access protected
	*@var string $message
	*/
	protected $message;
	
	/**
	*Metoda ustawia nam gotowa tablice z formularzem
	*@access public 
	*@param array $form
	*/
	public function __construct($form)
	{
		if(is_array($form))
		{	
			$this -> form = $form;
			$this -> form_tag['open'] = htmlspecialchars_decode($form['form_open']);
			$this -> form_tag['submit'] = htmlspecialchars_decode($form['form_sbt']);
			$this -> form_tag['close'] = htmlspecialchars_decode($form['form_close']);
			$this -> delete();
		}
	}
	
	
	/**
	*Metoda ustawia nam wiadomosc na temat akcji
	*@access public 
	*@param string $msg
	*/
	public function set_message($msg)
	{
		$this -> message = $msg;
	}
	
	
	/**
	*Metoda ustawia bledy
	*@access public 
	*@param array $err
	*/
	public function set_errors($err)
	{
		if(is_array($err))
			$this -> errors = $err;
		else
			$this -> errors = array($err);
	}

	
	/**
	*Zwraca nam bledy
	*@access protected 
	*@return array
	*/
	protected function get_errors()
	{
		return $this -> errors;
	}
	
	
	/**
	*Zwraca nam tresc powiadomienia na temat akcji
	*@access protected 
	*@return string
	*/
	protected function get_message()
	{
		return $this -> message;
	}
	
	
	/**
	*Zwraca formularz
	*@access protected 
	*@return array
	*/
	protected function get_elements()
	{
		return $this -> form;
	}
	
	
	/**
	*Zwraca tag formularza na podstawie klucza
	*@access protected
	*@return string
	*/
	protected function get_element($key)
	{
		if(array_key_exists($key, $this -> form))
			return htmlspecialchars_decode($this -> form[$key]);
		return false;
	}
	
	
	/**
	*Mowi nam czy element jest typu hidden
	*@access protected 
	*@param string 
	*@return bool
	*/
	protected function is_hidden_element($html)
	{
		return (substr_count($html, 'type="hidden"') > 0) ? true : false;
	}
	
	
	/**
	*Zwraca nam nie wyswietlany tag na podstawie klucza
	*@access protected 
	*@param string $tag
	*@return string
	*/
	protected function get_form_tag($tag)
	{
		return $this -> form_tag[$tag];
	}

	
	/**
	*Usuwa niepotrzebne smieci 
	*@access private
	*/
	private function delete()
	{
		unset($this -> form['form_sbt'], $this -> form['form_open'], $this -> form['form_close']);
	}
	
	
	abstract public function render();
	
}
?>